<?php


namespace App\Imports;


use App\Exceptions\MsgException;
use App\Patent;
use Carbon\Carbon;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\ToCollection;

class PatentImport implements ToCollection
{
    public function collection(Collection $rows)
    {
        $data = [];
//        foreach ($rows as $key => $row) {
//            if ($key) {
//                if (empty($row[0]) && empty($row[1])) {
//                    continue;
//                }
//                if (empty($row[0]) || empty($row[1])) {
//                    throw new MsgException('申请号或专利名称不能为空');
//                }
//                $res = $this->getData($row);
//                //$patent = Patent::query()->where('patent_sn', $res['patent_sn'])->first();
//                $data[] = $res;
//            }
//        }
//        collect($data)->unique('patent_sn')->chunk(50)->map(function ($item) {
//            $data = $item->values()->all();
//            DB::table('patents')->insert($data);
//        });
    }

//    public function getData($row): array
//    {
//        $patent_sn = trim($row[0]);
//        return [
//            'patent_sn' => $patent_sn,
//            'patent_type_id' => $this->getPatentType($patent_sn),
//            'patent_name' => $row[1],
//            'apply_date' => $this->getApplyDate($row[2]),
//            'applicant' => trim($row[3]),
//            'inventor' => trim($row[4]),
//            'state' => 1,
//            'legal_status' => '有效',
//            'created_at' => Carbon::now(),
//            'updated_at' => Carbon::now(),
//        ];
//    }
//
//    protected function getApplyDate($apply_date)
//    {
//        $apply_date = strtr($apply_date, ['年' => '-', '月' => '-', '日' => '-', '/' => '-']);
//        try {
//            $len = strlen($apply_date);
//            if ($len == 10 || $len == 8) {
//                $date = Carbon::parse($apply_date)->toDateString();
//            } elseif ($len == 5 && is_numeric($apply_date)) {
//                $date = Carbon::parse('1900-01-01')->addDays($apply_date)->subDays(2)->toDateString();
//            } else {
//                throw new MsgException('申请日格式错误,正确时间格式为：2020-01-01或20200101');
//            }
//        } catch (\Exception $exception) {
//            throw new MsgException('申请日格式错误,正确时间格式为：2020-01-01或20200101');
//        }
//        return $date;
//    }
//
//    protected function getPatentType($patent_sn)
//    {
//        $patent_sn = strtr($patent_sn, ['CN' => '', '.' => '']);
//        $len = strlen($patent_sn);
//        if ($len == 13) {
//            return substr($patent_sn, 4, 1);
//        }
//        return 0;
//    }

}
